package com.proyecto.personas.modelo.dao;

import java.io.Serializable;

import org.hibernate.LockMode;

import com.proyecto.core.Utilidades.UtilString;
import com.proyecto.core.modelo.DAOGenerico;
import com.proyecto.personas.modelo.dto.TipNip;

/**
 * Data access object (DAO) for domain model class TipNip.
 *
 * @see com.openLabs.persona.modelo.dto.TipNip
 * @author Carlos Ruiz, Elias Vargas.
 */

public class TipNipDAO  extends DAOGenerico{
	

	public Object findById(Object o, LockMode pTipoBloqueo) {
		log.debug("getting "+this.getClase().getSimpleName()+" instance with id: " + o);
		try {
			Object instance = getHibernateTemplate().get(this.getClase(), (Serializable) o, pTipoBloqueo);
			return instance;
		} catch (RuntimeException re) {
			log.error("get failed", re);
			throw re;
		}
	}
	
//	public Integer obtenerProximoNumero(TipNip pTipNip){
//		Integer proximoNumero = 1;
//		
//		try {
//			pTipNip = (TipNip) this.findById(pTipNip.getId(), LockMode.UPGRADE);
//			proximoNumero = pTipNip.getProximonumero();
//			if (proximoNumero == null || proximoNumero < 0){
//				proximoNumero = 1;
//			}
//			pTipNip.setProximonumero(proximoNumero + 1);
//			super.merge(pTipNip);
//			log.debug("save successful");
//		} catch (RuntimeException re) {
//			log.error("save failed", re);
//			throw re;
//		}
//		return proximoNumero;
//	}
	
//	public String obtenerProximoNumeroString(TipNip pTipNip){
//		Integer proximoNumero = 1;
//		String proxNumeroString = "";
//		
//		proximoNumero = obtenerProximoNumero(pTipNip);
//		if (!UtilString.esVacio(pTipNip.getTippinformato())){
//			Integer longigutNumero  = proximoNumero.toString().trim().length();
//			
//			proxNumeroString = pTipNip.getTippinformato().substring(longigutNumero) + proximoNumero.toString();
//		}else {
//			proxNumeroString = proximoNumero.toString();
//		}
//		return proxNumeroString;
//	}
}